$(function () {

    /*datagrid数据表*/
    $("#role_dg").datagrid({
        url:"/role/selectAllRoles",
        columns:[[
            {field:'rnum',title:'角色编号',width:100,align:'center'},
            {field:'rname',title:'角色名称',width:100,align:'center'},
        ]],
        // fit:true,
        fitColumns:true,
        rowNumbers:true,
        striped:true,
        singleSelect:true,
        pagination:true,
        rownumbers:true,
        tools:"#tb",
    });

    /*dialog对话框 添加/编辑 */
    $("#role_dialog").dialog({
        title:'添加角色',
        width:650,
        height:630,
        closed:true,
        buttons:[{
            text:'保存',
            iconCls:'icon-save',
            handler:function(){

                /*修改的话rid是有的，，如果新增增没有rid*/
                var rid = $("[name='rid']").val();
                var url ;
                if (rid){
                    url="/role/updateRoleAndRolePermissionRel";
                } else {
                    url="/role/addRole";
                }


                /*提交表单*/
                $("#myform").form("submit",{
                    url:url,
                    /*往后台 额外传一个参数*/
                    onSubmit:function(param){

                        /*获取 角色权限 表格，里所有的数据（数组）*/
                        var allRows = $("#YouNeedPermission").datagrid("getRows");
                        /*遍历 每一条权限数据*/
                        for (var i =0; i<allRows.length; i++){
                            var row  = allRows[i];
                            param["permissionList["+i+"].pid"] = row.pid;
                        }

                    },
                    success:function (data) {
                        /*解析成json*/
                        data = $.parseJSON(data);
                        if(data.success){
                            $.messager.alert("温馨提示",data.msg);
                            $("#role_dialog").dialog("close");
                            $("#role_dg").datagrid("reload");
                        }else {
                            $.messager.alert("温馨提示",data.msg);
                        }
                    }
                });
            }
        },{
            text:'关闭',
            iconCls:'icon-cancel',
            handler:function(){
                $("#role_dialog").dialog("close");
            }
        }],
    });

    /*全部权限 表格*/
    $("#AllPermission").datagrid({
        title:'所有权限',
        width:250,
        height:400,
        url:'/permission/selectAllPermission',
        fitColumns:true,
        striped:true,
        singleSelect:true,
        columns:[[
            {field:'pname',title:'权限名称',width:100,align:'center'},
        ]],

        /*添加点击事件的监听，，，，当点击表格时触发*/
        onClickRow:function (rowId,rowData) {

            /*判断 全部权限表格里你点击的这个权限，是不是已经添加到角色权限了*/

            /*1.获取角色权限表格的所有权限 （数组）*/
            var allRows = $("#YouNeedPermission").datagrid("getRows");

            /*2.遍历 角色权限表格的每一条数据(一个数据就是一个权限)*/
            for (var i=0; i<allRows.length; i++){

                /*3.取出 每一个*/
                var row = allRows[i];

                /*4.判断 是不是已经存在了*/
                if (rowData.pid == row.pid){

                    /*5.已经存在，则让角色权限表格的这条权限成为选中状态*/
                   var index = $("#YouNeedPermission").datagrid("getRowIndex",row);
                   $("#YouNeedPermission").datagrid("selectRow",index);
                   return;
                }
            }

            /*把 全部权限里选中的，添加到角色权限*/
            $("#YouNeedPermission").datagrid("appendRow",rowData);

        }
    });

    /*角色权限 的表格*/
    $("#YouNeedPermission").datagrid({
        title:'角色权限',
        width:250,
        height:400,
        fitColumns:true,
        striped:true,
        singleSelect:true,
        columns:[[
            {field:'pname',title:'权限名称',width:100,align:'center'},
        ]],
        /*监听 ，当角色权限表格点击一条权限数据时，把这条选中的数据移除*/
        onClickRow:function (rowIndex,rowData) {
            /**/
            $("#YouNeedPermission").datagrid("deleteRow",rowIndex);
        }
    });

    /*搜索按钮*/
    $("#searchbtn").click(function () {

        /*获取搜索框内 的数据*/
        var keyword = $("[name='keyword']").val();

        /*把搜索框内的数据 发给后台，，然后 刷新 dategrid*/
        $("#role_dg").datagrid("load",{selecttext:keyword}); /*文件名字是随便起的*/

    });

    /*刷新按钮*/
    $("#reload").click(function () {

        /*清空搜索框内的内容*/
        var keyword = $("[name='keyword']").val('');

        /*val(里面写了东西就是设置值，，写个单引号放着表示keyword搜索框内容为空) */

        /*刷新datagrid*/
        $("#role_dg").datagrid('load',{});
    });

    /*添加按钮*/
    $("#add").click(function () {
        /*设置dialog标题*/
        $("#role_dialog").dialog("setTitle","新增员工");

        /*清空 角色编号、角色名称输入框的内容*/
        $("#myform").form("clear");

        /*清空 角色权限datagird里的内容*/
        $("#YouNeedPermission").datagrid("loadData",{rows:[]});

        /*打开 dialog*/
        $("#role_dialog").dialog("open");
    });

    /*编辑按钮*/
    $("#edit").click(function () {

        /*获取 当前 选中行*/
        var rowData = $("#role_dg").datagrid("getSelected");
        console.log(rowData);

        /*不允许不选*/
        if (!rowData){
            $.messager.alert("提示","请选择一行数据再进行编辑！");
            return;
        }

        /*rnum、rname 数据回显*/
        $("#myform").form("load",rowData);
        /*角色权限 datagrid回显*/
        var options = $("#YouNeedPermission").datagrid("options");
        options.url = '/permission/selectAllByRid?rid='+rowData.rid;
        $("#YouNeedPermission").datagrid("load");

        /*设置标题*/
        $("#dialog").dialog("setTitle","编辑角色");
        /*打开dialog*/
        $("#role_dialog").dialog("open");
    });

    /*删除按钮*/
    $("#delete").click(function (){

        /*必须选择1行数据，才能进行编辑*/
        var rowData = $("#role_dg").datagrid("getSelected");

        if (rowData==null){
            $.messager.alert("提示","选择一行数据进行删除");
            return;
        }else {
            console.log("当前选中第‘"+rowData.rid+"’行。")
        }

        $.messager.confirm("确认","是否删除角色",function (res) {
            if (res) {
                /*点击删除 设置为离职*/
                $.get("/role/deleteRoleAndRolePermissionRel?rid="+rowData.rid,function (data) {

                    /*ajax结果集*/
                    if(data.success){
                        $.messager.alert("温馨提示",data.msg);
                        /*重新加载表格*/
                        $("#role_dg").datagrid("reload");
                    }else {
                        $.messager.alert("温馨提示",data.msg);
                    }
                });
            }
        })
    });




})